package org.jiuling.aliyun.sms.model;

import org.jiuling.aliyun.sms.enums.TemplateTypeEnum;
import org.jiuling.aliyun.sms.model.enums.AuditStatusEnum;

import java.util.Date;
import java.util.List;

/**
 * 查询短信模板列表响应模型
 * @author 紫灵
 * @date 2023年02月11日 23时22分33秒
 */
public class QuerySmsTemplateListResponseModel extends BaseResponseModel{

    /** 短信模板列表 */
    private List<SmsTemplate> smsTemplateList;
    /** 模板总数 */
    private long totalCount;
    /** 页码 */
    private int currentPage;
    /** 每页展示的模板个数 */
    private int pageSize;

    public List<SmsTemplate> getSmsTemplateList() {
        return smsTemplateList;
    }

    public void setSmsTemplateList(List<SmsTemplate> smsTemplateList) {
        this.smsTemplateList = smsTemplateList;
    }

    public long getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(long totalCount) {
        this.totalCount = totalCount;
    }

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    /**
     * 短信模板
     */
    public static class SmsTemplate{
        /** 短信模板CODE */
        private String templateCode;
        /** 模板名称 */
        private String templateName;
        /** 对外模板类型 */
        private TemplateTypeEnum outerTemplateType;
        /** 模板审批状态 */
        private AuditStatusEnum auditStatus;
        /** 模板内容 */
        private String templateContent;
        /** 短信模板的创建时间 */
        private Date createDate;
        /** 审核备注 */
        private Reason reason;
        /** 工单ID */
        private String orderId;
        /** 模板类型 */
        private TemplateTypeEnum templateType;

        public String getTemplateCode() {
            return templateCode;
        }

        public void setTemplateCode(String templateCode) {
            this.templateCode = templateCode;
        }

        public String getTemplateName() {
            return templateName;
        }

        public void setTemplateName(String templateName) {
            this.templateName = templateName;
        }

        public TemplateTypeEnum getOuterTemplateType() {
            return outerTemplateType;
        }

        public void setOuterTemplateType(TemplateTypeEnum outerTemplateType) {
            this.outerTemplateType = outerTemplateType;
        }

        public AuditStatusEnum getAuditStatus() {
            return auditStatus;
        }

        public void setAuditStatus(AuditStatusEnum auditStatus) {
            this.auditStatus = auditStatus;
        }

        public String getTemplateContent() {
            return templateContent;
        }

        public void setTemplateContent(String templateContent) {
            this.templateContent = templateContent;
        }

        public Date getCreateDate() {
            return createDate;
        }

        public void setCreateDate(Date createDate) {
            this.createDate = createDate;
        }

        public Reason getReason() {
            return reason;
        }

        public void setReason(Reason reason) {
            this.reason = reason;
        }

        public String getOrderId() {
            return orderId;
        }

        public void setOrderId(String orderId) {
            this.orderId = orderId;
        }

        public TemplateTypeEnum getTemplateType() {
            return templateType;
        }

        public void setTemplateType(TemplateTypeEnum templateType) {
            this.templateType = templateType;
        }

        /**
         * 审核备注
         */
        public static class Reason{

            /** 审批未通过的时间 */
            private Date rejectDate;
            /** 审批未通过的原因 */
            private String rejectInfo;
            /** 审批未通过的备注信息 */
            private String rejectSubInfo;

            public Date getRejectDate() {
                return rejectDate;
            }

            public void setRejectDate(Date rejectDate) {
                this.rejectDate = rejectDate;
            }

            public String getRejectInfo() {
                return rejectInfo;
            }

            public void setRejectInfo(String rejectInfo) {
                this.rejectInfo = rejectInfo;
            }

            public String getRejectSubInfo() {
                return rejectSubInfo;
            }

            public void setRejectSubInfo(String rejectSubInfo) {
                this.rejectSubInfo = rejectSubInfo;
            }
        }

    }

}
